package com.abgame.test.javase.tool;

import com.abgame.test.javase.tool.zip.GZIPUtils;
import com.abgame.test.javase.tool.zip.PakoUtil;
import com.abgame.test.javase.tool.zip.ZlibUtil;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import org.apache.catalina.User;
import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

@RestController
@RequestMapping("/zip")
public class ZipTestController {

    @Data
    class UserTest{
        private String name;
        private String desc;
    }


    @RequestMapping("/test")
    public String zipTest(String data) throws IOException {

        System.out.println("接収 client 原文<<"+data);
        //byte[] clientBytes = PakoUtil.receive(data);
        //byte[] bytes = ZlibUtil.decompress(clientBytes);
        String requestParam = GZIPUtils.unCompress(data);
        System.out.println("server 解压后<<"+requestParam);

        UserTest userTest = new UserTest();
        userTest.setName("test");
        userTest.setDesc("我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd我是张三 **@*￥）*￥*）@#*#*@+—— ~kdfkda55d4 fd");


        String jsonString = JSON.toJSONString(userTest);
        System.out.println("原始字符串："+jsonString);
        System.out.println("原始字符串长度："+jsonString.length());

        jsonString  = URLEncoder.encode(jsonString, "UTF-8");
        jsonString = Base64.encodeBase64String(jsonString.getBytes("UTF-8"));

        String rst = GZIPUtils.compress(jsonString);

        System.out.println("压缩编码后字符串："+rst);
        System.out.println("压缩编码后字符串长度："+rst.length());
        return rst;



/*        System.out.println("接收到的参数" + data);
        //String json = "1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！1234546adsfg张三#@！";
        String json = "1122336555487547";
        System.out.println("原始字符串长度："+json.length());
        String zip = null;
        try {
            zip = PakoGzipUtils.compress(json);
            System.out.println("压缩编码后字符串长度："+zip.length());
            System.out.println("压缩比："+(float)zip.length()/(float)json.length());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  zip;*/
    }



}
